import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;
/**
 * Aquí se cargan los tres niveles, así como el menú del juego.
 * 
 * @author Alejandro Caldera
 * 
 */
public class Nivel1 extends World
{
    private Label label3;
    private Label label1;
    private Label label2;
    private boolean band=true;
    public Fumigador fumi;
    public int nivel=1;
    
    
    /**
     * Constructor for objects of class Mundo.
     * 
     */
   public Nivel1()
    {    
        // Create a new world with 600x400 cells with a cell size of 1x1 pixels.
         super(800, 450, 1);  
        this.principal();
        
    }
     /**
     * Función que carga la pantalla de inicio o menú del juego
     * 
     */
     
    public void principal()
        {
            clean();
            if(band==true)
            {
             setBackground("MENU.jpg"); 
             Play boton1=new Play(this);
             addObject(boton1,360,326);
             Help boton2=new Help(this);
             addObject(boton2,499,326);
             Credits boton3=new Credits(this);
             addObject(boton3,629,326);
            }
        }
        
     /**
     * Carga el nivel 1 del juego, jugador,recarga, insectos, etiquetas y obstáculos. 
     * 
     */    
    public void carga()
    {
        fumi=new Fumigador(this);
        setBackground("Interior2.jpeg");
        placeBombs();
        
        addObject(new Ins1(), 200,150 );
        addObject(new Ins2(), 600, 90 );
        addObject(new Ins3(), 320,300 );
        addObject(new Ins2(), 350,100 );
        addObject(new Ins2(), 300,240 );
        
        addObject(new Pelota(),445,270 );
        addObject(new Recarga(),746,333 );
        addObject(fumi, 100,350 );
        
        label2 = new Label("NIVEL 1");
                label2.setBackground(Color.YELLOW);
                label2.setForeground(Color.BLUE);
                label2.setBorder(Color.BLUE);
                label2.setWidth(100);
                label2.setAlignment(Label.CENTER);
                addObject(label2,0,8);
                
      }
      
      /**
     * Carga el nivel 2 del juego, jugador,recarga, insectos, etiquetas y obstáculos. 
     * 
     */   
      
      public void carga2()
    {
        clean();
        fumi=new Fumigador(this);
        setBackground("living room perspective.jpg"); 
        placeBombs();
       
        addObject(new Ins3(), 160,210 );
        addObject(new Ins1(), 250,130 );
        addObject(new Ins3(), 490,270 );
        addObject(new Ins3(), 520,320 );
        addObject(new Ins1(), 760,182 );
        addObject(new Ins2(), 166,98 );
        addObject(new Ins3(), 600,130 );
        addObject(new Ins3(), 800,270 );
        addObject(new Bart(),374,260 );
        addObject(new Recarga(),746,333 );
        addObject(fumi, 100,350 );
        
        
       label2 = new Label("NIVEL 2");
                label2.setBackground(Color.YELLOW);
                label2.setForeground(Color.BLUE);
                label2.setBorder(Color.BLUE);
                label2.setWidth(100);
                label2.setAlignment(Label.CENTER);
                addObject(label2,0,5);
                
                
      }
      
      /**
     * Carga el nivel 3 del juego, jugador,recarga, insecto matriarca Mom Alone,barra de vida de insecto, etiquetas y ovni. 
     * 
     */   
        public void carga3()
      {
        clean();
       fumi=new Fumigador(this);
         
        
        setBackground("outer space stars planets 1920x1080 wallpaper_www.wall321.com_95.jpg");
        
        addObject(new Ovni(),250,71 );
        addObject(new Recarga(),746,333 );
        addObject(fumi, 100,350 );
        
       label2 = new Label("NIVEL 3");
                label2.setBackground(Color.YELLOW);
                label2.setForeground(Color.BLUE);
                label2.setBorder(Color.BLUE);
                label2.setWidth(98);
                label2.setAlignment(Label.CENTER);
                addObject(label2,0,3);
                
                
       
       addObject (new MomAlone(),439,219);
       addObject (new Health(),640,30);
       
        
    } 
     /**
     * Carga el nivel 1 del juego, después de haber sido presionado el botón play. 
     * 
     */   
      public void juego()
        {
            removeObjects(getObjects(null));
           
            carga();
        }
      /**
     * Muestra la ayuda del juego 
     * 
     */   
    
      public void ayuda()
        {
         clean();
         setBackground("AYUDA.jpg");
         Back boton6=new Back(this);
         addObject(boton6,708,390);
        }
        
        /**
     * Muestra imagen de ganaste al final del juego. 
     * 
     */   
         public void ganaste()
        {
         clean();
         setBackground("GANASTE.jpg");
         
        }
        
        /**
     * Muestra créditos del juego
     * 
     */   
        public void creditos()
        {
         clean();
         setBackground("CREDITOS.jpg");
         Back boton8=new Back(this);
         addObject(boton8,708,390);
        }
    /**
     * Muestra letrero de perdiste cuando el jugador ha llegado a 0 vidas
     * 
     */   
    public void perdiste()
        {
         addObject(new Pierdes(),415,220);
        
         
         
        }
        
       
       /**
     * Checa si ya no existen insectos en el nivel y dependiendo el nivel ejecuta una acción.
     * 
     */   
      public void checagano()
        {
            if(getObjects(Plaga.class).size()==0)
              
             if(nivel==3)
              {
                  ganaste();
              }
              else
              {
                  nivel++;
                  if(nivel==2)
                  {
                      removeObjects(getObjects(null));
                      carga2();
                  }
                  if(nivel==3)
                  {
                      removeObjects(getObjects(null));
                      carga3();
                  }
              }  
        }
                 
                  
     
    /**
     * Borra todos los objetos que esten en el nivel. 
     * 
     */   
      
    public void clean()
    {
        removeObjects(getObjects(null));
    }
    
    /**
     * Coloca bombas en lugares definidos por coordenadas obtenidas de forma aleatoria.
     * 
     */   
    public void placeBombs()
    {
          for (int i = 0; i < 3; i++) {
            int x = Greenfoot.getRandomNumber ( getWidth() );
            int y = Greenfoot.getRandomNumber ( getHeight() );
            addObject ( new Bomb(), x, y);
        }
    }
    
   
    
    public void act()
    {   
      
    }
    
      
}
